#ifndef __FSM_DEFS_H__
#define __FSM_DEFS_H__

typedef enum FSM_SYSMODE_STATE {
	TMODE_IDLE = 0,				//测试空闲模式
	TMODE_UP,					//测试慢上	
	TMODE_DOWN,					//测试慢下
	TMODE_UP_ONECE,				//测试上一层
	TMODE_DOWN_ONECE,			//测试下一层
	TMODE_UP_LIMIT,				//测试上到等层
	TMODE_DOWN_LIMIT,			//测试下道底层
	
	NMODE_STANDBY,				//正常模式空闲
	NMODE_INIT,					//正常模式初始化
	NMODE_FAULT,				//正常模式上
	NMODE_WORKING,				//正常模式工作中
	NMODE_CONTINUOUS,			//连续工作模式
	
	FAULT_SCAN_SLAVE,			//检索从机通信
	FAULT_CHECK_MODE,			//检索异常
}FSM_SYSMODE_STATE_E;

typedef enum SYSTEM_EVENT {
	
	FSM_EVENT_INIT = 0,					//初始化事件
	FSM_EVENT_FINSH,					//执行完成事件
	FSM_EVENT_FAIL,						//执行失败
	FSM_EVENT_RUNNING,					//执行中事件
	FSM_EVENT_NO_SIG,					//事件不响应
	
	SYSTEM_EVENT_HB_SENDALL,			//检查从机
	SYSTEM_EVENT_REACH,					//层到达信号
	SYSTEM_EVENT_REACH_LIFT,			//层离开信号
	
	SYSTEM_EVENT_UP_LIMIT,				//上限位
	SYSTEM_EVENT_DOWN_LIMIT,			//下限位
	SYSTEM_EVENT_RUN_TIMEOUT,			//运行超时
	SYSTEM_EVENT_REACH_TIMEOUT,			//离开平层超时
//	SYSTEM_EVENT_NEXT_WORK,				//下一个任务
	SYSTEM_EVENT_FLOOR_REACH,			//到达目的地信号
	SYSTEM_EVENT_STOP_TIMEOUT,			//停靠时间超时
	SYSTEM_EVENT_EXE_WORK,				//执行任务
	SYSTEM_EVENT_CLEAR_STATE,			//清空异常状态事件
	SYSTEM_EVENT_CHANGE_JOB,			//修改任务
	
	TMODE_EVENT_TEST_MIN = 0x20,		//预留

	TMODE_EVENT_UP_CLICK,				//上按键单击
	TMODE_EVENT_DOWN_CLICK,				//下按键单击
	TMODE_EVENT_UP_DOUBLE,				//上按键双击
	TMODE_EVENT_DOWN_DOUBLE,			//下按键双击
	
	TMODE_EVENT_CLICK_ANY = 0x2A,		//预留用于响应any事件
	
	TMODE_EVENT_UP_KEY_LIFT,			//上按键抬起
	TMODE_EVENT_DOWN_KEY_LIFT,			//下案件抬起
	
	TMODE_EVENT_UP_KEY_DOWN,			//上按键按下
	TMODE_EVENT_DOWN_KEY_DOWN,			//下按键按下
	
	TMODE_EVENT_KEY_ANY = 0x30,			//预留用于响应所有按键事件
	
	FAULT_EVENT_BZ_DOWN,				//抱闸异常
	FAULT_EVENT_BZ_OFF,					//抱闸异常解除
	FAULT_EVENT_RJ_BREAK,				//热继电器
	FAULT_EVENT_RJ_OFF,					//热继电器解除
	FAULT_EVENT_DOOR_OPENED,			//门锁打开
	FAULT_EVENT_DOOR_CLOSED,			//门锁关闭
	FAULT_EVENT_DOOR_LOCKED,			//门锁已锁
	FAULT_EVENT_DOOR_UNLOCK,			//门锁解锁
	FAULT_EVENT_JT_DOWN,				//急停
	FAULT_EVENT_JT_LIFT,				//急停抬起

	FAULT_EVENT_ANY = 0x40,				//预留用于响应any事件
}SYSTEM_EVENT_E;


#endif //__FSM_DEFS_H__
